<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

require_once APPLICATION_PATH . '/models/Exception/OperacionInvalidaException.php';

/**
 * Clase que brinda un comportamiento comun a las clases del sistema
 *
 * @author kristian
 */
class Spalm_Model_Utils_Base {
    
    // en caso de querer asignar un valor a un atributo inexistente
    // se mostrara un mensaje de error
     public function __set($name, $value){
        $this->__get($name);
    }

    // en caso de querer obtener un valor de un atributo inexistente
    // se mostrara un mensaje de error
    public function __get($name){
        $mensaje = "el atributo " . $name . "no existe";

        throw new OperacionInvalidaException($mensaje);
    }

    // en caso de querer invocar un metodo inexistente
    // se mostrara un mensaje de error
    public function __call($method,$parametros){
        $mensaje = "el metodo " . $method . " con los parametros ";

        foreach ($parametros as $parametro){
            $mensaje = $mensaje . $parametro . ", ";
        }

        $mensaje = $mensaje."no existe";

        throw new OperacionInvalidaException($mensaje);
    }
}
?>
